/*
 * AlgoritmoCaminoMinimo.h
 *
 *  Created on: 10/09/2010
 *      Author: jonathan
 */

#ifndef ALGORITMOCAMINOMINIMO_H_
#define ALGORITMOCAMINOMINIMO_H_

#include <string>
#include <vector>
#include <queue>
#include <iostream>
#include "Pelicula.h"
#include "Persona.h"
#include "Conjunto.h"

using namespace std;

class AlgoritmoCaminoMinimo{

public:

	AlgoritmoCaminoMinimo(string idOrigen, string idDestino);
	void ejecutar();

private:

	string idOrigen;
	string idDestino;
	string nombreDestino;

	queue<Persona *> colaPersonas;
	Conjunto idPersonasProcesadas;
	Conjunto idPeliculasProcesadas;
	Conjunto idPeliculasDestino;

	void procesar( Persona * unaPersona);
	void emitirCamino( Pelicula * unaPelicula);

	bool caminoEncontrado;

};

#endif /* ALGORITMOCAMINOMINIMO_H_ */
